//
// Created by xyx16 on 2025/8/5.
//
#include<iostream>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;
class Solution {
public:
    bool isPrimeNumber(int num) {
      if(num<=1) return false;
      if(num==2) return true;

      for(int i=2; i<=sqrt(num); i++)
      {
        if(num%i==0)
        {
          return false;
        }
      }
      return true;
    }
    int diagonalPrime(vector<vector<int>>& nums) {
      vector<int> rec;
      for(int i=0;i<nums.size();i++){
        for(int j=0;j<nums[i].size();j++){
          if((i==j||j==nums.size()-1-i)&&isPrimeNumber(nums[i][j])){
            rec.push_back(nums[i][j]);
          }
        }
      }
      if(rec.empty()){
        return 0;
      }
      else{
        sort(rec.begin(),rec.end());
        return rec.back();
      }
    }
};